<!-- AI对话 -->
<template>
	
</template>

<script>
	
	import base from '@/components/index.vue'
	
	/**
	 * AI对话
	 * 可以通过最后一条的数据id，获取整个对话，并继续
	 * 也可以开始新的对话
	 */
	
	export default {
		extends: base,
		props: {
			// 该对话的最后一条数据id。通过该id获取整个对话，并继续
			doc: String,
			/**
			 * AI对话模式
			 * qa：问答；
			 * reasoning：推理；
			 * article：文章生成；
			 * code：代码生成；
			 * translation：翻译；
			 * custom：自定义
			 */
			mode: {
				type: String,
				default: 'qa',
			}
		},
		data() {
			return {
				loadStatus: '',
				// 显示的数据，每一个数据中带children
				dataList: [],
				// 最后一条数据的id，每次新增一条之后就要更新
				lastId: this.doc
			}
		},
		computed: {
			
		},
		mounted() {
			if (this.doc) {
				this.loadStatus = 'loading'
				this.core.request.get('z-ai', {getTreePath: {
					parentKey: 'parent_id',
					getTreePath: {
						limitLevel: 'all', // 最大查询层级（不包含当前层级），可以省略默认10级，最大15，最小1。如果超过15项则要继续查询
						startWith: `_id=="${this.doc}"`  // 末级节点的条件，此初始条件不可以省略
					}
				}}).then(res => {
					this.loadStatus = ''
					this.dataList = res.data
				}).catch(err => {
					this.loadStatus = 'error'
				})
			}
		},
		methods: {
			send(content) {
				if (content) {
					this.loadStatus = 'loading'
					const {lastId, mode} = this
					this.request('ai', 'dialogue', {content, doc, mode}, true).then(res => {
						this.loadStatus = ''
						this.dataList = res.data
					}).catch(err => {
						this.loadStatus = 'error'
					})
				} else {
					this.core.showToast('请输入内容')
				}
			}
		}
	}
</script>

<style>
</style>